package com.hopu.oa.service.user;

import com.hopu.oa.entity.dto.user.UserInformation;
import com.hopu.oa.entity.user.AoaUser;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

/**
 * @ClassName: UserService
 * @Description:
 * @Date: 2021/11/11 17:06
 */
@Service
public interface UserService {

    List<AoaUser> selectAllUser(@Param("loginTime") String loginTime, @Param("userId") Integer userId);

    /*
      @Description : 根据 电话/姓名   密码 查询用户
      @Date   :  2021/11/13
      @Param  : [userName, password]
      @return : com.hopu.oa.entity.user.AoaUser
     */
    AoaUser queryUserByNameOrTelAndPassword(String userName, String password);


    /*
      @Description : id查询
      @Date   :  2021/11/13
      @Param  : [userId]
      @return : com.hopu.oa.entity.user.AoaUser
     */
    AoaUser queryUserById(Integer userId);


    /*
    @Description :
                  * 校验用户 ： DTO VS POJO
                  * 校验用户是否修改密码
                  * 返回更新后的用户
    @Date   :  2021/11/12
    @Param  : [aoaUser, dtoUser]
    @return : com.hopu.oa.entity.user.AoaUser
   */
    Map<String, Object> user_updateUserByUserId(AoaUser aoaUser, UserInformation dtoUser);


    /*
      @Description : 根据用户id 查询部门名称 和  职位
      @Date   :  2021/11/13
      @Param  : [userId]
      @return : java.util.Map<java.lang.String,java.lang.String>
     */
    Map<String, String> queryUserDeptAndPositionById(Integer userId);

    List<AoaUser> deletePosition(Integer positionId);

    /**
     * 角色删除校验
     *
     * @param roleId
     * @return
     */
    List<AoaUser> selectByRole(@Param("roleId") Integer roleId);

    AoaUser selectUserByUserName(String userName);

}